package com.tianji.remark.service;

import com.tianji.remark.entity.dto.LikeRecordFormDTO;
import com.tianji.remark.entity.po.LikedRecord;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 点赞记录表 服务类
 * </p>
 *
 * @author lemon
 */
public interface ILikedRecordService extends IService<LikedRecord> {

    /**
     * 新增取消点赞记录
     *
     * @param dto
     */
    void saveLikedRecord(LikeRecordFormDTO dto);

    /**
     * 查询当前用户是否点赞该业务-数据库
     *
     * @param bizIds
     * @return
     */
    Set<Long> getLikesStatus(List<Long> bizIds);

    /**
     * 查询当前用户是否点赞该业务-redis
     *
     * @param bizIds
     * @return
     */
    Set<Long> getLikesStatusForRedis(List<Long> bizIds);

    /**
     * 从redis中读取点赞数和消息
     * 然后给mq发送消息
     *
     * @param bizType
     * @param maxBizSize
     */
    void readLikedTimesAndMessage(String bizType, int maxBizSize);

    /**
     * 将redis中的点赞数据同步到数据库
     */
    void syncLikedDataFromRedisToDB();
}
